﻿using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Data;
using System.Windows.Ria;
using SoftSource.MVVMC;
using SoftSource.Timecard.Web.Data;

namespace SoftSource.Timecard.ViewModelInterfaces
{
    public interface IProjectMembershipEditorViewModelConsume : IDataViewModelConsume
    {
        #region Properties

        PagedCollectionView SourceMembers { get; }
        PagedCollectionView ProjectMembers { get; }

        #endregion Properties

        #region Methods

        Func<ProjectMember, Action, UIElement> CreateProjectMemberEditor { get; }
        Action<object> AddToProject { get; }
        Action<object> RemoveFromProject { get; }
        Action Completed { get; }

        #endregion Methods
    }
    public interface IProjectMembershipEditorViewModelService : IDataViewModelService
    {
        #region Properties

        EntityCollection<ProjectMember> Members { get; set; }
        IEnumerable<UserSummary> MemberSource { get; set; }

        #endregion Properties

        #region Methods

        Func<ProjectMember, Action, UIElement> CreateProjectMemberEditor { get; set; }
        Action<object> AddToProject { get; set; }
        Action<object> RemoveFromProject { get; set; }
        Action Completed { get; set; }

        #endregion Methods
    }
    public interface IProjectMembershipEditorViewModel : 
        IDataViewModel, 
        IProjectMembershipEditorViewModelConsume, 
        IProjectMembershipEditorViewModelService
    {
    }
}
